Much of today's digital content and services are consumed and delivered from the “cloud”. Generally, the cloud refers to a distributed platform whose architecture and resources are operated and managed by one entity. Different customers leverage and rely on these resources to execute and deliver their applications to end users located throughout the world. By leveraging the cloud, application providing customers can direct their focus to content and application creation, rather than building and managing the infrastructure to serve the content and applications to end users.
Cloud operators include content delivery networks (CDNs), hosting providers, or any operator operating multiple servers at different geographic locations for purposes of serving content and services of others. Akamai and Amazon Web Services are examples of some cloud operators. Together, the cloud operators create a virtually unlimited resource pool from which application providers can reach end users.
The problem with cloud usage is the manual or human administrative and configuration overhead required to deploy applications thereon. This problem is evident in applications that are active for short periods of time and that can experience widely fluctuating demand. For example, web real-time communication (WebRTC) applications include live streaming events, chat and other communication sessions, online meetings, and other online collaborations. These applications are relatively brief in length and can experience unexpected or large spikes in demand over that brief interval. These applications require rapid allocation and deallocation of resources, service configuration and customization, and attention to scaling. Such operations are normally beyond the automated functions of current cloud operators, whereby cloud operators primarily deploy machines for customers to use and leave much of the configuration and customization of the machines up to the customers. As a result, these applications can reintroduce much of the infrastructural overhead that the cloud was intended to remove and free application providers from.
Accordingly, there is a need to simplify the deployment of WebRTC and other applications on the cloud. To this end, there is need to obfuscate the allocation and scaling of the underlying services and resources on which the applications are implemented. There is further a need to automate the allocation and scaling of such services and resources with the automation occurring dynamically and in real-time.